(function($){
	var checkItemsSort=null;
	var checkItemsUnsort=null;
	
	$(document).ready(function(){
		if(patientInfo){
			//加载检验列表
			initCheckList();
			//事件绑定
			eventBind();
		}
	});
	
	/**
	 * 事件绑定
	 * @returns
	 */
	function eventBind(){
		$("#sortTestBtn").click(function(){
			var emerUpFlag=$(this).data('emer');
			if(emerUpFlag=='1'){
				$(this).removeClass('xBtn-success');
				$(this).addClass('xBtn-warning');
				$(this).html('取消危机值置顶');
				$(this).data('emer','0');
			}else{
				$(this).removeClass('xBtn-warning');
				$(this).addClass('xBtn-success');
				$(this).html('危机值置顶');
				$(this).data('emer','1');
			}
			//排序检查项目列表
			sortCheckItemTable(emerUpFlag);
		})
	}
	
	/**
	 * 排序检查项目列表
	 * @returns
	 */
	function sortCheckItemTable(emerUpFlag){
		if(emerUpFlag=='1'){
			drawOrderItemsTable({
				tableData:checkItemsSort
			});
		}else{
			drawOrderItemsTable({
				tableData:checkItemsUnsort
			});
		}
	}
	/**
	 * 加载检验名列表
	 */
	function initCheckList(){
		$.getApiClient('/patientView/testResults/{patientId}/orderNames').setQuery({
			patientId : patientId
		}).get().done(function(data){
			if(data.code=='0'){
				var orderNames=data.payload;
				var data={
					tableData:resovleData(orderNames)
				}
				drawOrderNamesTable(data);
			}
		});
		
		//处理数据
		function resovleData(orderNames){
			var map = {}, destArry = [];
			//按照testDate分组
			$.each(orderNames,function(index,item){
				var testDateStr=$.dateFormatToString(new Date(item.testDate),'yyyy-MM-dd');
				item.testDate=$.dateFormatToString(new Date(item.testDate),'yyyy-MM-dd HH:mm').split(' ')[1];
				    if(!map[testDateStr]){
				    	destArry.push({
				    		testDate: testDateStr,
				            subData: [item]
				        });
				        map[testDateStr] = item;
				    }else{
				        for(var i = 0; i < destArry.length; i++){
				            var di = destArry[i];
				            if(di.testDate == testDateStr){
				            	di.subData.push(item);
				                break;
				            }
				        }
				    }
			})
			return destArry;
		}
		
		//渲染列表
		function drawOrderNamesTable(data){
			var tableHtml = template('tpl-orderNames', data);
			$("#orderNamesDiv").html(tableHtml);
			$("#orderNamesDiv").find('li').click(function(){
				$("#orderNamesDiv").find('li').removeClass('select');
				$(this).addClass('select');
				var orderId=$(this).data('orderid');
				//加载检验项目列表
				initChckItemList(orderId);
			})
			$("#orderNamesDiv").find('li').eq(0).click();
		}
	}
	
	/**
	 * 加载检验项目列表
	 * @param orderId
	 * @returns
	 */
	function initChckItemList(orderId){
		$.getApiClient('/patientView/testResults/{patientId}/orderItems').setQuery({
			patientId : patientId,
			orderId : orderId
		}).get().done(function(data){
			if(data.code=='0'){
				var checkItems=data.payload;
				var data={
					tableData:resovleData(checkItems)
				}
				drawOrderItemsTable(data);
			}
		});
		
		//处理数据
		function resovleData(checkItems){
			var tableData={};
			tableData.testDate=$.dateFormatToString(new Date(checkItems[0].testDate),'MM-dd HH:mm');
			var rows=[];
			$.each(checkItems,function(index,item){
				var refrange = item.refrange;
				if(refrange){
					var result = parseFloat(item.result);
					var minValue = parseFloat(refrange.split('~')[0]);
					var maxValue = parseFloat(refrange.split('~')[1]);
					if(result < minValue){
						item.result=item.result+' ↓';
						item.emergency='low';
					}else if(result > maxValue){
						item.result=item.result+' ↑';
						item.emergency='high';
					}else{
						item.emergency='normal';
					}
				}
				rows.push(item);
			})
			tableData.rows=rows;
			checkItemsSort=$.extend(true,{},tableData);
			checkItemsUnsort=$.extend(true,{},tableData);
			checkItemsSort.rows.sort(function(a,b){
				//危机值置顶
				if(a.emergency!=='normal'){
					return -1;
				}else{
					return 1;
				}
			})
			return tableData;
		}
	}
	
	/**
	 * 渲染检查项目列表
	 */
	function drawOrderItemsTable(data){
		var tableHtml = template('tpl-orderItems', data);
		$("#checkItemTable").html(tableHtml);
	}
})(jQuery);
